package com.eastmoney.gamecode.vo;

import com.eastmoney.gamecode.enums.MapElementEnums;
import lombok.Data;
import org.springframework.util.CollectionUtils;

import java.util.List;

/**
 * 游戏请求参数类
 *
 * @author
 * @date 2023-09
 */
@Data
public class GameRequest {
    // 地图中各个元素的二维数组
    private GameMap map;

    // 当前各地图中各参赛坦克（机器人/玩家）的状态
    private List<TankSateVo> tankSatesVoList;

    // 当前各地图中存在（机器人/玩家）的子弹
    private List<BulletSateVo> bulletSateVoList;

    // 安全区域参数
    private SafeAreaStateVo safeAreaStateVo;

    // 当前各地图中的道具
    private List<PropVo> propVoList;

    // 当前参赛者id
    private String tankId;

    /**
     * 我方坦克
     */
    private TankSateVo myTank;

    private int[][] distance;


    public TankSateVo getMyTank() {
        if (this.myTank != null) {
            return myTank;
        }
        if (CollectionUtils.isEmpty(this.getTankSatesVoList())) {
            return null;
        }
        TankSateVo myTank = null;
        for (TankSateVo tank : this.getTankSatesVoList()) {
            if (tank.getTankId().equals(this.getTankId())) {
                myTank = tank;
                break;
            }
        }
        this.myTank = myTank;
        return myTank;
    }
}
